package threshold;

import java.util.Arrays;

/**
 * @Author wujiaming
 * @Description TODO
 * @Date 2023-02-05 10:11
 * @Version 1.0
 * 给定一个整数数组 nums，将数组中的元素向右轮转 k 个位置，其中 k 是非负数。
 */
public class Rotate {

    /**
     * nums.length-1-k
     * @param nums
     * @param k
     */
     public void rotate1(int[] nums, int k) {
        int[] temps = new int[k];


        //保存末三位至temps
        int j = 0;
         for (int i = nums.length-k; i < nums.length; i++) {
             temps[j++] = nums[i];
         }

         for(int i =nums.length-1-k; i>=0;i-- ){
             nums[i+k] = nums[i];
         }
         for (int i = 0; i < k; i++) {
             nums[i] = temps[i];
         }
    }


    public void rotate(int[] nums, int k){
         int[] temps = new int[nums.length];
         for(int i=0;i<nums.length;i++){temps[i]=nums[i];}

         for(int i=0;i<nums.length;i++){
             nums[(i+k)%nums.length] = temps[i];
         }

        System.out.println(Arrays.toString(nums));

    }

    public static void main(String[] args) {
        Rotate rotate = new Rotate();
        int[] nums={-1,-100,3,99};
        rotate.rotate(nums,2);
        /*System.out.println(Arrays.toString(nums));*/

    }
}
